package com.baibei.ebec.home.newIndex;

import com.baibei.basic.IPageView;
import com.baibei.basic.IPresenter;
import com.baibei.basic.IPresenterView;
import com.baibei.model.Area;
import com.baibei.model.BalanceInfo;
import com.baibei.model.BannerInfo;
import com.baibei.model.CouponInfo;
import com.baibei.model.CouponResponseInfo;
import com.baibei.model.CustomerWxInfo;
import com.baibei.model.HomeIndexInfo;
import com.baibei.model.MarqueeInfo;
import com.baibei.model.MsgStatusInfo;
import com.baibei.model.NewMarqueeInfo;
import com.baibei.model.OrderInfo;
import com.baibei.model.QuotationProductInfo;
import com.baibei.model.RankingInfo;
import com.baibei.model.ShipmentInfo;
import com.baibei.model.TradeTimeInfo;
import com.baibei.model.XinStatusInfo;

import java.io.ObjectStreamClass;
import java.util.List;

/**
 * Created by tang on 2018/6/28.
 */

public class NewHomeIndexContract {
    interface Presenter extends IPresenter {

        /**
         * 获取qq
         */
        void getServiceQQ();

        /**
         * 获取跑马灯内容
         */
        void getMarquee();
//        /**
//         * 多空比例
//         */
//        void loadUpDownCompare(String area);

        /**
         * 反复加载数据
         */
        void loadRepeated();

        /**
         * 加载余额以及优惠券
         */
        void loadBalanceAndCoupons();

        /**
         * 获取建议数量
         *
         * @return return
         */
        List<Integer> getSuggestNumbers();

        /**
         * 获取提醒内容
         */
        void getHelp();

        /**
         * 获取对应商品的可用优惠券列表
         */
        void getProductCoupon(String productId);

        /**
         * 获取“新”字的显示状态
         */
        void getIfShowXin();

        /**
         * 获取是否有新消息
         */
        void getIfHasNewMsg(String userId,String accessToken);

        /**
         * 获取客服微信号
         */
        void getCustomerWxCode();
    }

    interface View extends IPresenterView, IPageView<ShipmentInfo> {
        /**
         * 加载广告数据
         */
        void onLoadBannerData(List<BannerInfo> data);


        /**
         * 数据加载完毕
         */
        void onLoadComplete();

        /**
         * 刷新完成
         */
        void refreshCompleted();

        /**
         * 获取区域
         */
        Area getArea();

        /**
         * banner失败
         * @param s s
         */
        void onLoadBannerFailed(String s);

        /**
         * 加载qq成功
         * @param url
         */
        void onLoadServiceQQSuccess(String url);


        /**
         * 加载qq失败
         * @param msg msg
         */
        void onLoadServiceQQFailed(String msg);

        /**
         * 关闭loading
         */
        void hideLoading();

        /**
         * 加载中
         */
        void showLoading();

        /**
         * 加载跑马灯文字
         */
        void onLoadMarquee(List<NewMarqueeInfo> list);

        /**
         * 加载首页数据
         */
        void onLoadHomeIndexData(HomeIndexInfo homeIndexInfo);

        /**
         * 交易时间数据（是否开市）
         */
        void onLoadTradeTimeInfo(TradeTimeInfo tradeTimeInfo);

        /**
         * 加载余额失败
         */
        void onLoadBalanceFailed(String msg);

        /**
         * 加载余额信息
         */
        void onLoadBalanceInfo(BalanceInfo balanceInfo);

        /**
         * 获取订单列表失败
         */
        void onLoadOrderListFailed(String msg);

        /**
         * 获取订单列表成功后更新我的盈收
         */
        void updateMyIncome(List<OrderInfo> infos);
        /**
         * 更新商品列表头部数据
         */
        void onUpdateQuotation(QuotationProductInfo quotationProductInfo);

        /**
         * 加载优惠券信息失败
         */
        void onLoadCouponFailed();

        /**
         * 加载优惠券信息成功
         */
        void onLoadCouponSuccess(List<CouponInfo> couponValid,CouponResponseInfo couponResponseInfo);

        /**
         * 获取所有商品的关市价格
         */
        void onLoadClosePrice(List<RankingInfo> rankingInfos);

        /**
         * 加载提醒内容成功
         */
        void onLoadHelpSuccess(String s);

        /**
         * 获取对应商品优惠券列表成功
         */
        void onLoadProductCouponSuccess(List<CouponInfo> couponInfos);

        /**
         * 获取对应商品优惠券列表失败
         */
        void onLoadProductCouponFailed();

        /**
         * 显示首页的“新”字
         */
        void onLoadXin(XinStatusInfo xinStatusInfo);

        /**
         * 显示信封图片
         */
        void onLoadMsgStatus(List<MsgStatusInfo> msgStatusInfos);

        /**
         * 客服微信号加载成功
         */
        void onLoadCustomerWXCodeSuccess(CustomerWxInfo customerWxInfo);
    }
}
